/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.sistemaventas.web;
import edu.upc.sistemaventas.dominio.CategoriaDomain;
import edu.upc.sistemaventas.negocio.EmprendedorLogicaNegocio;
import edu.upc.sistemaventas.dominio.EmprendedorDomain;
import edu.upc.sistemaventas.dominio.SabioDomain;
import edu.upc.sistemaventas.dominio.TipoDocumentoDomain;
import edu.upc.sistemaventas.negocio.CategoriaPlanNegocio;
import edu.upc.sistemaventas.negocio.SabioLogicaNegocio;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

/**
 *
 * @author jdev5
 */
@Controller
public class RegistraSabioController {

    @RequestMapping(value = "/sabio_nuevo", method = RequestMethod.GET)	
    protected ModelAndView iniciosabio(HttpServletRequest request,
                                  HttpServletResponse response) throws Exception {
		
		return new ModelAndView("sabio_nuevo");
    }
    
    @RequestMapping(value = "/sabio_nuevoAdmin", method = RequestMethod.GET)	
    protected ModelAndView sabio_nuevoAdmin(HttpServletRequest request,
                                  HttpServletResponse response) throws Exception {
		
		return new ModelAndView("sabio_nuevoAdmin");
    }


        @RequestMapping(value = "/MantSabio", method = RequestMethod.GET)
	protected ModelAndView MantSabio(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		//Collection<Categoria> lista = null;
		//lista = categoriaService.listarCategorias();
                
                SabioLogicaNegocio negocio = new SabioLogicaNegocio();
            //CategoriaDomain domain =  new CategoriaDomain();
            
                List<SabioDomain> domains = null;
                domains= negocio.listarSabios();
                //domains = negocio.buscarCategoriasPorPadre(2);
		return new ModelAndView("MantSabio", "SABIOS", domains);
	}
 
        @RequestMapping(value = "/grabarSabio", method = {RequestMethod.GET, RequestMethod.POST})
	protected ModelAndView grabar(HttpServletRequest request, HttpServletResponse response) throws Exception {
		//EmprendedorDomain notMNoti = (EmprendedorDomain)command;
                SabioLogicaNegocio negocio = new SabioLogicaNegocio();
                SabioDomain sabio = new SabioDomain();
                
                sabio.setNombres(request.getParameter("usuario").toString());
                sabio.setApellidoPaterno(request.getParameter("paterno").toString());
                sabio.setApellidoMaterno(request.getParameter("materno").toString());
                sabio.setSexo(request.getParameter("sexo").toString());
                sabio.setTipoDocumentoIdentidad(request.getParameter("tipodocumento").toString());
                sabio.setNumeroDocumentoIdentidad(request.getParameter("numerodocumento").toString());
                sabio.setCorreo(request.getParameter("correo").toString());
                sabio.setCelular(request.getParameter("celular").toString());
                sabio.setDireccion(request.getParameter("direccion").toString());
                //notMNoti2.setFechaNacimiento(request.getAttribute("fechanacimiento"));

                SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                Date fecha;
                fecha = df.parse(request.getParameter("fechanacimiento").toString());
                
                sabio.setFechaNacimiento(fecha);
                
                sabio.setClave(request.getParameter("contrasenia").toString());
                sabio.setApelativo(request.getParameter("apelativo").toString());
                sabio.setResumenAutobiografico(request.getParameter("resumen").toString());
                sabio.setSitioWeb(request.getParameter("sitioweb").toString());
                                
                try {
                    negocio.registrarSabio(sabio);
		} catch (Exception e) {
			//return new ModelAndView("/error", "mensaje", e.getMessage());
                    System.out.println("en la excepcion" + e.getMessage());
			//return new ModelAndView("/error", "mensaje", e.getMessage());                        
                        request.setAttribute("mensaje", e.getMessage());
                        return new ModelAndView("sabio_nuevo");
		}                
                //negocio.reg
		return new ModelAndView("grabarSabio");
	}
        

        @RequestMapping(value = "/grabarSabioAdmin", method = {RequestMethod.GET, RequestMethod.POST})
	protected ModelAndView grabarSabioAdmin(HttpServletRequest request, HttpServletResponse response) throws Exception {
		//EmprendedorDomain notMNoti = (EmprendedorDomain)command;
                SabioLogicaNegocio negocio = new SabioLogicaNegocio();
                SabioDomain sabio = new SabioDomain();
                
                sabio.setNombres(request.getParameter("usuario").toString());
                sabio.setApellidoPaterno(request.getParameter("paterno").toString());
                sabio.setApellidoMaterno(request.getParameter("materno").toString());
                sabio.setSexo(request.getParameter("sexo").toString());
                sabio.setTipoDocumentoIdentidad(request.getParameter("tipodocumento").toString());
                sabio.setNumeroDocumentoIdentidad(request.getParameter("numerodocumento").toString());
                sabio.setCorreo(request.getParameter("correo").toString());
                sabio.setCelular(request.getParameter("celular").toString());
                sabio.setDireccion(request.getParameter("direccion").toString());
                //notMNoti2.setFechaNacimiento(request.getAttribute("fechanacimiento"));

                SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                Date fecha;
                fecha = df.parse(request.getParameter("fechanacimiento").toString());
                
                sabio.setFechaNacimiento(fecha);
                
                sabio.setClave(request.getParameter("contrasenia").toString());
                sabio.setApelativo(request.getParameter("apelativo").toString());
                sabio.setResumenAutobiografico(request.getParameter("resumen").toString());
                sabio.setSitioWeb(request.getParameter("sitioweb").toString());
                                
                try {
                    negocio.registrarSabio(sabio);
		} catch (Exception e) {
			//return new ModelAndView("/error", "mensaje", e.getMessage());
                    System.out.println("en la excepcion" + e.getMessage());
			//return new ModelAndView("/error", "mensaje", e.getMessage());                        
                        request.setAttribute("mensaje", e.getMessage());
                        return new ModelAndView("sabio_nuevoAdmin");
                        //MantSabio.html
		}                
                //negocio.reg
		//return new ModelAndView("grabarSabioAdmin");
                return new ModelAndView("redirect:MantSabio.html");
	}
        
        @RequestMapping(value = "/sabio_editar", method = RequestMethod.GET)
	protected ModelAndView sabio_editar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
            
            ModelAndView modelAndView = new ModelAndView("sabio_editar");
            
		SabioDomain cat = new SabioDomain();
                SabioLogicaNegocio negocio = new SabioLogicaNegocio();
                
		cat = negocio.buscarSabio(Integer.parseInt(request.getParameter("id")));
		
		System.out.println("idProducto "+request.getParameter("id"));
                
                //tipo de documento
                TipoDocumentoDomain td = new TipoDocumentoDomain();
                TipoDocumentoDomain td2 = new TipoDocumentoDomain();
                TipoDocumentoDomain td3 = new TipoDocumentoDomain();
                List<TipoDocumentoDomain> lista = null;
                lista = new ArrayList<TipoDocumentoDomain>();
                
                td.setId(1);
                td.setNombre("DNI");
                lista.add(td);
                
                td2.setId(2);
                td2.setNombre("Carnet Extranjería");
                lista.add(td2);
                
                td3.setId(3);
                td3.setNombre("Pasaporte");
                lista.add(td3);
                
                modelAndView.addObject("SABIOS", cat);
                modelAndView.addObject("TIPOS", lista);
                
		//return new ModelAndView("sabio_editar", "SABIOS", cat);
                return modelAndView;
	}

        @RequestMapping(value = "/guardarModificacionSabio", method = RequestMethod.POST)
	protected ModelAndView modificarSabio(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println("guardarModificacionSabio");
		
		SabioDomain cat = new SabioDomain();
                SabioLogicaNegocio negocio = new SabioLogicaNegocio();
                
		cat.setId(Integer.parseInt(request.getParameter("id")));
		cat.setApellidoPaterno(request.getParameter("txtApPaterno"));
		cat.setApellidoMaterno(request.getParameter("txtApMaterno"));
                
                cat.setNombres(request.getParameter("txtNombres"));
                cat.setSexo(request.getParameter("txtSexo"));
                cat.setTipoDocumentoIdentidad(request.getParameter("txtTipoDoc"));
                
                System.out.println("numero de documento");
                System.out.println(request.getParameter("txtNumeroDoc"));
                
                cat.setNumeroDocumentoIdentidad(request.getParameter("txtNumeroDoc"));
                cat.setCorreo(request.getParameter("txtCorreo"));
                
                cat.setCelular(request.getParameter("txtCelular"));
                cat.setDireccion(request.getParameter("txtDireccion"));
                
                SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                Date fecha;
                fecha = df.parse(request.getParameter("txtFecNac").toString());
                
                cat.setFechaNacimiento(fecha);
                cat.setClave(request.getParameter("txtClave"));
                cat.setApelativo(request.getParameter("txtApelativo"));
                cat.setResumenAutobiografico(request.getParameter("txtResumen"));
                cat.setSitioWeb(request.getParameter("txtSitioWeb"));
                //cat.setApellidoMaterno(request.getParameter("txtDescripcion"));
		
		try {
                    negocio.actualizarSabio(cat);
		} catch (Exception e) {
			return new ModelAndView("/error", "mensaje", e.getMessage());
		}

		return new ModelAndView("redirect:MantSabio.html");
	}

	@RequestMapping(value = "/sabio_eliminar", method = RequestMethod.GET)
	protected ModelAndView eliminarSabio(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println("sabio_eliminar");
		
		SabioDomain cat = new SabioDomain();
                SabioLogicaNegocio negocio = new SabioLogicaNegocio();
                
		cat.setId(Integer.parseInt(request.getParameter("id")));
		//cat.setNombreCategoria(request.getParameter("txtNombre"));
		//cat.setDescripcion(request.getParameter("txtDescripcion"));
		
		try {
			negocio.eliminarSabio(Integer.parseInt(request.getParameter("id")));
                        
		} catch (Exception e) {
			return new ModelAndView("/error", "mensaje", e.getMessage());
		}

		return new ModelAndView("redirect:MantSabio.html");
	}
}
